package com.ruoyi.cs.domain;

import java.math.BigDecimal;
import java.util.Date;

import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;
import org.springframework.data.domain.PageRequest;

/**
 * 背包信息对象 t_backpack
 * 
 * @author ruoyi
 * @date 2021-03-25
 */
@Data
@ApiModel(description = "背包信息对象")
public class TBackpack extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 背包ID */
    @ApiModelProperty(value = "背包ID")
    private String bbId;

    /** 用户ID */
    @ApiModelProperty(value = "用户ID")
    @Excel(name = "用户ID")
    private String userId;

    /** 饰品ID */
    @ApiModelProperty(value = "饰品ID")
    @Excel(name = "饰品ID")
    private String goodsId;

    /** 饰品所属类型 0 箱子  1 ROLL房间 2 幸运饰品 3 饰品商城 4 补偿饰品 */
    @ApiModelProperty(value = "饰品所属类型 0 箱子  1 ROLL房间 2 幸运饰品 3 饰品商城 4 补偿饰品")
    @Excel(name = "饰品所属类型 0 箱子  1 ROLL房间 2 幸运饰品 3 饰品商城 4 补偿饰品")
    private String goodsBelongingType;

    /** 填取对应饰品类型的ID   0 箱子ID  1 ROLL房间ID  其他可不填 */
    @ApiModelProperty(value = "填取对应饰品类型的ID   0 箱子ID  1 ROLL房间ID  其他可不填")
    @Excel(name = "填取对应饰品类型的ID   0 箱子ID  1 ROLL房间ID  其他可不填")
    private String goodsBelongingId;

    /** 饰品市场价格 */
    @Excel(name = "饰品市场价格")
    @ApiModelProperty(value = "饰品市场价格")
    private BigDecimal goodsPrice;

    /** 开启前用户余额 */
    @Excel(name = "开启前用户余额")
    @ApiModelProperty(value = "开启前用户余额")
    private BigDecimal openBeforeBalance;

    /** 开启后用户余额 */
    @Excel(name = "开启后用户余额")
    @ApiModelProperty(value = "开启后用户余额")
    private BigDecimal openAfterBalance;

    /** 背包状态 0 待处理 1 取回中 3 已取回 4 已兑换 */
    @Excel(name = "背包状态")
    @ApiModelProperty(value = "背包状态 0 待处理  1 取回中 2 已取回 3 已兑换 4 取货失败 5 待发货 6待收货")
    private String bbStatus;

    /** 饰品数量 */
    @Excel(name = "饰品数量")
    @ApiModelProperty(value = "饰品数量")
    private Integer goodsNum;

    /** 备注2 */
    @Excel(name = "饰品兑换价格")
    @ApiModelProperty(value = "饰品兑换价格")
    private BigDecimal goodsExprice;

    /** 饰品类型 */
    @Excel(name = "饰品类型")
    @ApiModelProperty(value = "饰品类型")
    private String goodsType;

    /** 取货时间 */
    @Excel(name = "备注4")
    @ApiModelProperty(value = "取货时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date retrieveTime;

    /** 箱子标题ID */
    @Excel(name = "备注5")
    @ApiModelProperty(value = "到货时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date arrivalTime;

    /** 人工审核状态 0 待通过 1 已通过  2 自动通过  */
    @Excel(name = "备注6")
    @ApiModelProperty(value = "人工审核状态 0 待审核 1 已审核  2 自动审核  3 人工审核不通过 4 禁止取回 5 已兑换")
    private String auditStatus;

    /** 删除标志 */
    @Excel(name = "删除标志")
    @ApiModelProperty(value = "删除标志")
    private String delFlag;

    /** 版本号 */
    @Excel(name = "版本号")
    @ApiModelProperty(value = "版本号")
    private Long version;

    /**饰品名称*/
    @ApiModelProperty(value = "饰品名称")
    private String goodsName;

    /**饰品图片*/
    @ApiModelProperty(value = "饰品图片")
    private String goodsPic;

    /**消费金额（包括开箱、幸运饰品升级、盲盒对战、商城购买。。。凡是消费的金额，免费获得的为0）*/
    @ApiModelProperty(value = "消费金额（包括开箱、幸运饰品升级、盲盒对战、商城购买。。。凡是消费的金额，免费获得的为0）")
    private BigDecimal openBoxPrice;

    /**推广人推广码*/
    @ApiModelProperty(value = "推广人推广码")
    private String userPromotersId;
    /**
     * 后台标志
     */
    @ApiModelProperty(value = "后台标志")
    private String backStage;

    /**排序*/
    @ApiModelProperty(value = "排序 1 从高到低  0 从低到高")
    private String sort;

    @ApiModelProperty(value = "错误信息")
    private String errormsg;

    /**订单ID*/
    @ApiModelProperty(value = "订单ID")
    private String orderId;

    @ApiModelProperty(value = "错误时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date retrieveErrorTime;

    /**取回记录ID*/
    @ApiModelProperty(value = "取回记录ID")
    private String operateId;

    /**取消订单次数*/
    @ApiModelProperty(value = "取消订单次数")
    private Integer failNum;

    /**人工审核时间*/
    @ApiModelProperty(value = "人工审核时间")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date auditTime;

    /**购买时IP*/
    @ApiModelProperty(value = "购买时IP")
    private String ip;

    /**饰品品级*/
    @ApiModelProperty(value = "饰品品级")
    private String goodsGrate;

    /**开箱算法（0 天气鱼+奖池 1 保底）*/
    @ApiModelProperty(value = "开箱算法（0 天气鱼+奖池 1 保底）")
    private String ruleType;

    @ApiModelProperty(value = "饰品所属类型名称 所属类型为箱子时填箱子id....")
    private String goodsBelongingName;

    @ApiModelProperty(value = "背包饰品名称")
    private String bbGoodsName;

    @ApiModelProperty(value = "背包饰品图片")
    private String bbGoodsPic;

    @ApiModelProperty(value = "背包饰品品级")
    private String bbGoodsGrate;

    @ApiModelProperty(value = "备用ID")
    private String remarkId;

    /**发货方式 1人工 2自动*/
    @ApiModelProperty(value = "发货方式 1人工 2自动")
    private String delivery;

    @ApiModelProperty(value = "购买状态 0正常 1异常")
    private String buyStatus;

    @ApiModelProperty(value = "是否禁止取回时取回 0是 1否")
    private String prohibitRetrieve;

    @ApiModelProperty(value = "已交易饰品的zbt交易价格")
    private BigDecimal zbtTradePrice;

    @ApiModelProperty(value = "客户端种子")
    private String userSeed;

    @ApiModelProperty(value = "服务端种子")
    private String serverSeed;

    @ApiModelProperty(value = "公共哈希")
    private String commonHash;

    @ApiModelProperty(value = "roll值")
    private Long rollValue;

    @ApiModelProperty(value = "随机整数")
    private Integer nonce;

    @ApiModelProperty(value = "roll值区间")
    private String rollValueRange;

    @ApiModelProperty(value = "订单状态，是否已调购买接口 0-false 1-true")
    private Boolean isCreateOrder;
}
